package com.silence.springboot.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Table;
import com.silence.springboot.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 图书基础信息表 实体类。
 *
 * @author mybatis-flex-helper automatic generation
 * @since 1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Table(value = "book_base")
@Schema(name = "图书基础信息表")
@EqualsAndHashCode(callSuper = false)
public class BookBaseEntity extends BaseEntity {

    /**
     * 图书名称
     */
    @Schema(description = "图书名称")
    @Column(value = "book_name")
    private String bookName;

    /**
     * 作者编号
     */
    @Schema(description = "作者编号")
    @Column(value = "book_author_id")
    private String bookAuthorId;

    /**
     * 类别编号1
     */
    @Schema(description = "类别编号1")
    @Column(value = "type_id_1")
    private String typeId1;

    /**
     * 类别编号2
     */
    @Schema(description = "类别编号2")
    @Column(value = "type_id_2")
    private String typeId2;

    /**
     * 类别编号3
     */
    @Schema(description = "类别编号3")
    @Column(value = "type_id_3")
    private String typeId3;

    /**
     * 出版社
     */
    @Schema(description = "出版社")
    @Column(value = "press")
    private String press;

    /**
     * 出版日期
     */
    @Schema(description = "出版日期")
    @Column(value = "publication_date")
    private String publicationDate;

    /**
     * 图书封面
     */
    @Schema(description = "图书封面")
    @Column(value = "book_cover")
    private String bookCover;

    /**
     * 图书简介
     */
    @Schema(description = "图书简介")
    @Column(value = "book_introduction")
    private String bookIntroduction;

    /**
     * 图书目录
     */
    @Schema(description = "图书目录")
    @Column(value = "book_directory")
    private String bookDirectory;

    /**
     * 图书评价
     */
    @Schema(description = "图书评价")
    @Column(value = "evaluate")
    private Integer evaluate;

    /**
     * 图书来源
     */
    @Schema(description = "图书来源")
    @Column(value = "book_source")
    private String bookSource;

    /**
     * 图书状态（0：在库中 1：借阅申请中 2：已借阅 3：归还申请中 4：已归还 5：丢失 6：废弃）
     */
    @Schema(description = "图书状态（0：在库中 1：借阅申请中 2：已借阅 3：归还申请中 4：已归还 5：丢失 6：废弃）")
    @Column(value = "book_status")
    private String bookStatus;

    /**
     * 借阅人姓名
     */
    @Schema(description = "借阅人姓名")
    @Column(value = "borrow_book_name")
    private String borrowBookName;

    /**
     * 归还人姓名
     */
    @Schema(description = "归还人姓名")
    @Column(value = "return_book_name")
    private String returnBookName;

    /**
     * 借阅最大期限
     */
    @Schema(description = "借阅最大期限")
    @Column(value = "term")
    private String term;

    /**
     * 申请时间
     */
    @Schema(description = "申请时间")
    @Column(value = "borrow_time")
    private LocalDateTime borrowTime;

    /**
     * 归还时间
     */
    @Schema(description = "归还时间")
    @Column(value = "return_time")
    private LocalDateTime returnTime;

    /**
     * 逾期时间
     */
    @Schema(description = "逾期时间")
    @Column(value = "overdue_time")
    private LocalDateTime overdueTime;

    /**
     * 逾期欠款
     */
    @Schema(description = "逾期欠款")
    @Column(value = "overdue_debt")
    private String overdueDebt;

}
